#ifndef _CONFIGUREIMPL_H_
#define _CONFIGUREIMPL_H_

#include "stdafx.h"

class CConfigureImpl :	public IConfigure,
					public IPlugin,
					public IPluginRun,
					public CUnknownImp
{
public:
	CConfigureImpl(void);
    virtual ~CConfigureImpl(void);

    BEGIN_STDCOM_MAP
	STDCOM_INTERFACE_ENTRY_UNKNOWN_(IConfigure)
	STDCOM_INTERFACE_ENTRY(IPlugin)
	STDCOM_INTERFACE_ENTRY(IPluginRun)
	STDCOM_INTERFACE_ENTRY(IConfigure)
    END_STDCOM_MAP

public:
    // IPlugin
    std_method(Init)(IBase* pRot, IBase* pBase);
    std_method(Uninit)();
	
	// IPluginRun
	std_method(Start)(_pid_t pid, unsigned int type);
	std_method(Stop)(unsigned int exit);
	
	// IConfigure
	std_method(OnRegister)(LPCSTR name, LPCSTR type, IBase* pBase);
	std_method(OnUnRegister)(LPCSTR name, LPCSTR type);
	std_method(SetStorePath)(LPSTRING path);
	std_method_(LPSTRING, GetStorePath)();
	std_method(RefreshResource)(int nclass);
	std_method(GetResource)(int nclass);
	std_method(UpdateSource)(int source, int type, LPCSTR buf, int size);
	std_method(UpdateSource)(int source, int type, LPSTRING path);
	
private:
	path_string path;
};

#endif
